package com.jr.mapper;


import com.jr.entity.UserJobEnterprise;
import com.jr.util.PageHelper;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 用户工作企业三表关联
 *
 * @author 张闯
 * @since 1.0.0 2022-12-31
 */
@Mapper
public interface UserJobEnterpriseDao {

    /**
     * @param pageHelper 分页工具类
     * description:分页查询所有工作
     * @author luluya
     * @date: 2023/1/8 10:25
     * @return: java.util.List<com.jr.entity.UserJobEnterprise>
     */
    List<UserJobEnterprise> selectAllJob(PageHelper<UserJobEnterprise> pageHelper);

    /**description:查询所有用户关注的工作列表
     * @author luluya
     * @date: 2023/1/8 10:25
     * @return: UserJobEnterprise
     */
    List<UserJobEnterprise> selectAllJobByUid(PageHelper<UserJobEnterprise> pageHelper);

    /**
     * @param pageHelper
     * @description: 查询单个工作的详细信息以及是否被申请
     * @author luluya
     * @date: 2023/1/8 10:30
     * @return: UserJobEnterprise
     */
    UserJobEnterprise selectOneJobByUid(PageHelper<UserJobEnterprise> pageHelper);

    /**
     * @param pageHelper
     * @description: 查询企业发布工作 使用分页工具类的属性对象，没有进行分页
     * @author luluya
     * @date: 2023/1/8 10:33
     * @return: List<UserJobEnterprise>
     */
    List<UserJobEnterprise> selectJobsByEid(PageHelper<UserJobEnterprise> pageHelper);

    /**
     * @param userJobEnterprise
     * @description: 添加用户与工作的关注或者申请状态
     * @author luluya
     * @date: 2023/1/8 10:34
     * @return: int
     */
    int insertUserJobEnterprise(UserJobEnterprise userJobEnterprise);

    /**
     * @param userJobEnterprise
     * @description: 查询用户关注或已申请工作状态
     * @author luluya
     * @date: 2023/1/8 10:36
     * @return: UserJobEnterprise
     */
    UserJobEnterprise selectUserJobEnterprise(UserJobEnterprise userJobEnterprise);

    /**
     * @param userJobEnterprise
     * @description: 更改用户申请或关注状态
     * @author luluya
     * @date: 2023/1/8 10:37
     * @return: int
     */
    int updateUserJobEnterprise(UserJobEnterprise userJobEnterprise);

    /**
     * @param
     * @description: 删除用户关注和申请为空的数据
     * @author luluya
     * @date: 2023/1/8 10:37
     * @return: int
     */
    int deleteByJobuserstatusAndJobuserattentionWithUser();

    /**
     * @param pageHelper
     * @description: 计算用户已申请的职位个数
     * @author luluya
     * @date: 2023/1/8 10:38
     * @return: int
     */
    int countNumbersWithJobsByUid(PageHelper<UserJobEnterprise> pageHelper);

    /**
     * @param pageHelper
     * @description: 计算所有工作的条数
     * @author luluya
     * @date: 2023/1/8 10:38
     * @return: int
     */
    int countNumbersWithJobs(PageHelper<UserJobEnterprise> pageHelper);

}